home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / dmusbuff.h < prev    next >
C/C++ Source or Header  |  2001-10-08  |  2KB  |  42 lines

  1. /***************************************************************************
  2. *                                                                          *
  3. *   DMusBuff.h -- This module defines the buffer format for DirectMusic    *
  4. *                 Shared file between user mode and kernel mode components *
  5. *                                                                          *
  6. *   Copyright (c) 1998, Microsoft Corp. All rights reserved.               *
  7. *                                                                          *
  8. ***************************************************************************/
  9.  
  10. #ifndef _DMusBuff_
  11. #define _DMusBuff_
  12.  
  13. /* Format of DirectMusic events in a buffer
  14.  *
  15.  * A buffer contains 1 or more events, each with the following header.
  16.  * Immediately following the header is the event data. The header+data
  17.  * size is rounded to the nearest quadword (8 bytes).
  18.  */
  19.  
  20. #include <pshpack4.h>                       /* Do not pad at end - that's where the data is */ 
  21. typedef struct _DMUS_EVENTHEADER *LPDMUS_EVENTHEADER;
  22. typedef struct _DMUS_EVENTHEADER
  23. {
  24.     DWORD           cbEvent;                /* Unrounded bytes in event */
  25.     DWORD           dwChannelGroup;         /* Channel group of event */
  26.     REFERENCE_TIME  rtDelta;                /* Delta from start time of entire buffer */
  27.     DWORD           dwFlags;                /* Flags DMUS_EVENT_xxx */
  28. } DMUS_EVENTHEADER;
  29. #include <poppack.h>
  30.  
  31. #define DMUS_EVENT_STRUCTURED   0x00000001  /* Unstructured data (SysEx, etc.) */
  32.  
  33. /* The number of bytes to allocate for an event with 'cb' data bytes.
  34.  */ 
  35. #define QWORD_ALIGN(x) (((x) + 7) & ~7)
  36. #define DMUS_EVENT_SIZE(cb) QWORD_ALIGN(sizeof(DMUS_EVENTHEADER) + cb)
  37.  
  38.  
  39. #endif /* _DMusBuff_ */
  40.  
  41.  
  42.